Winray Blog

For Study!

满减优惠

For study!

题目介绍: 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近天气炎热,小Ho天天宅在家里叫外卖。他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元。 并且如果消费总计满X元,还能享受优惠。小Ho是一个不薅羊毛不舒服斯基的人,他希望选择若干道不同的菜品, 使得总价在不低于X元的同时尽量低。 你能算出这一餐小Ho...

进程间通信

For study!

进程间通信 进程间通信(IPC,Interprocess communication)是一组编程接口,让程序员能够协调不同的程序进程,使之能在一个操作系统里同时运行。这使得一个程序能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须互相通话。IPC接口就提供了这种可能性。每个IPC方法均有它自己的优点和局限性,因此,对于...

经典排序算法(二)

For study!

堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 概述 建立N个元素的二叉堆,这个阶段花费O(N)时间 然后执行N次deleteMin操作 按照顺序,最小的元素先离开堆 通过将这些记录...

经典排序算法(一)

For study!

概述 排序是计算机程序设计中的一种重要操作,简单的说,可以使任意序列重新排列成一个按关键字有序的序列。 好处: 有序顺序可以采用查找效率较高的折半查找法 有如建造数表(无论是二叉树还是B-树)的过程本身就是一个排序的过程 稳定与否 若两个相等数,在排序前与排序后的顺序相同,则是稳定的排序,否则是不稳定的。 ...

Sicily 1034. Forest

For study!

思路: 网上很多说用深搜,很任性…….发现广搜也挺好用的,实验课打的(⊙o⊙)…orz……..囧。 先找根结点,根据根结点广搜深度,广搜宽度,不过要开一个数组,同一层的累加宽度。别忘了要判断是否合法。 具体代码如下: #include <iostream> #include <cstring> #incl...

Sicily 1936. Knight Moves

For study!

思路: 这道题一开始不理解题意…orz…囧,看大神们理解的。 题意是说一个8*8的国际象棋,骑士以马的形式走动(“日”字型),指定两个点,输出最小的步骤。 可以利用广度搜索解决。 具体代码如下: #include <iostream> #include <queue> #include <...

Sicily shortest path in unweighted graph

For study!

题目介绍: 输入一个无向图,指定一个顶点s开始bfs遍历,求出s到图中每个点的最短距离。 如果不存在s到t的路径,则记s到t的距离为-1。 Input 输入的第一行包含两个整数n和m,n是图的顶点数,m是边数。1<=n<=1000,0<=m<=10000。 以下m行,每行是一个数对v y,表示存在边(v,y)。顶点编号从1开始。 Output ...

Sicily connect components in undirected graph

For study!

题目介绍: 输入一个简单无向图,求出图中连通块的数目。 Input 输入的第一行包含两个整数n和m,n是图的顶点数,m是边数。1<=n<=1000,0<=m<=10000。 以下m行,每行是一个数对v y,表示存在边(v,y)。顶点编号从1开始。 Output 单独一行输出连通块的数目。 Sample Input 5 3 1 2 1 3 2 4 Sam...

Sicily 1931. 卡片游戏

For study!

思路: 纯属数据结构中队列的应用,可以练练手。 具体代码如下: #include <iostream> #include <queue> using namespace std; int main() { int t; cin >> t; while (t--) { ...

Sicily 1021. Couples

For study!

思路: 想清楚了这道题其实很简单。利用夫妻出现的位置作为下标,并设为同一值,第一对夫妻值为1,第二对为2,以此类推,存储完毕即可进入下一步。 利用栈这个数据结构:遍历这个数组,当栈不为空且栈顶元素等于数组出现的元素时,pop掉栈顶元素,其余情况则入栈。循环完毕,若栈为空则为Yes,否则为No。 具体代码如下: #include ...